Алгоритм Reversal
Мы используем три указателя для итеративного разворота:
- curr — текущий узел.
- prev — предыдущий (станет новым следующим).
- next — временный, чтобы не потерять хвост.
void reverse(Node* head) {
Node *prev = nullptr, *curr = head;
while (curr) {
Node* next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
}